package net.comfycastle.musicplayer;

import android.app.Application;
import android.provider.MediaStore;

/**
 * 어플리케이션 객체
 * 각종 상수/공용 메서드 등을 관리한다.
 * @author ricale
 *
 */
public class MPApp extends Application {
	///////////
	//////////
	/////////   constant
	
	/** 각 노래 파일의 고유 아이디 태그 */
	final static String TAG_ID = "_id";
	/** 노래 파일의 앨범명 태그 */
	final static String TAG_ALBUM = MediaStore.Audio.AlbumColumns.ALBUM;
	/** 노래 파일의 아티스트명 태그 */
	final static String TAG_ARTIST = MediaStore.Audio.AlbumColumns.ARTIST;
	/** 노래 파일의 장르명 태그 */
	final static String TAG_GENRE = "genre_name";
	/** 노래 파일의 제목 태그 */
	final static String TAG_TITLE = MediaStore.MediaColumns.TITLE;
	/** 노래 파일의 작곡가명 태그 */
	final static String TAG_COMPOSER = "composer";
	/** 노래 파일의 앨범아티스트명 태그 */
	final static String TAG_ALBUMARTIST = "album_artist";
	/** 노래 파일의 트랙 태그 */
	final static String TAG_TRACK = "track";
	/** 노래 파일의 총 재생 시간 태그 */
	final static String TAG_DURATION = "duration";
	/** 노래 파일의 실제 위치 (파일 경로) 태그*/
	final static String TAG_FILEPATH = MediaStore.MediaColumns.DATA;
	/** 노래 파일의 앨범아트 아이디 */
	final static String TAG_ALBUMID = MediaStore.Audio.AlbumColumns.ALBUM_ID;
	/** 노래 파일의 타이틀 아티스트 태그. 앨범 아티스트가 존재하면 앨범 아티스트 태그값과 동일, 아니라면 아티스트 태그값과 동일. 미디어 스토어에서 쓰이지 않고 이 어플리케이션에서만 쓰인다.*/
	final static String TAG_TITLEARTIST = "title_artist"; ///< this tag is not exist in Media Scanner. it's custom tag.
	
	/** 인텐트 액션. 앨범 내부 리스트를 보여준다 */
	final static String ACT_SHOW_LIST_INALBUM = "net.comfycastle.musicplayer.showListInalbum";
	/** 인텐트 액션. 그룹 내부 리스트를 보여준다 */
	final static String ACT_SHOW_LIST_INGROUP = "net.comfycastle.musicplayer.showListInGroup";
	/** 인텐트 액션. 앨범들의 리스트를 보여준다 */
	final static String ACT_SHOW_LIST_ALBUMS  = "net.comfycastle.musicplayer.showListAlbum";
	/** 인텐트 액션. 노래를 재생한다 */
	final static String ACT_PLAY = "net.comfycastle.musicplayer.play";
	/** 인텐트 액션. 재생중인 정보를 보여준다 */
	final static String ACT_SHOW_PLAYING = "net.comfycastle.musicplayer.showPlaying";
	/** 인텐트 액션. 재생중인 목록을 보여준다 (그룹 내부 목록일 경우) */
	final static String ACT_SHOW_PLAYLIST_INGROUP = "net.comfycastle.musicplayer.showPlaylistInGroup";
	/** 인텐트 액션. 재생 중인 목록을 보여준다 (앨범 내부 목록일 경우) */
	final static String ACT_SHOW_PLAYLIST_INALBUM = "net.comfycastle.musicplayer.showPlaylistInalbum";
	
	/** 인텐트 액스트라 키. 노래 종류 값을 가리킨다. */
	final static String ITT_GROUPKIND = "groupKind";
	/** 인텐트 엑스트라 키. 노래 종류명 값을 가리킨다. */
	final static String ITT_GROUPNAME = "groupName";
	/** 인텐트 엑스트라 키. 타이틀 아티스트 값을 가리킨다. */
	final static String ITT_TITLEARTIST = "titleArtist";
	/** 인텐트 엑스트라 키. 앨범 아티스트인가 아닌가 값을 가리킨다. */
	final static String ITT_ISALBUMARTIST = "isAlbumArtist";
	/** 인텐트 엑스트라 키. 시작 트랙 번호값을 가리킨다. */
	final static String ITT_STARTTRACK = "startTrack";
	/** 인텐트 엑스트라 키. 노래 목록 정보 문자열 값을 가리킨다. */
	final static String ITT_WHERE = "where";
	/** 인텐트 액스트라 키. 노래 목록 정보 객체를 가리킨다. */
	final static String ITT_MUSICLISTINFO = "musicListInfo";
	/** 인텐트 엑스트라 키. 앨범의 아이디 값을 가리킨다.*/
	final static String ITT_ALBUMID = "albumId";
	
	/** 방송 구분자. 음악 서비스에서 음악 재생 준비가 완료되었음을 알릴 때의 방송이다 */
	final static String BR_MEDIAPLAYER_PREPARE = "net.comfycastle.MEDIAPLAYER.PREPARE";
	
	/** MusicService 에서 통지 구분자, 인데 이거 왜 여기 있냐 MusicService에 넣지 */
	final static int NOTI_PLAYING = 1;
} // end MPApp